#include <stdio.h>
#include <stdlib.h>
#include "auxiliar.h"

char * readLine(){
	static char line[52];
    char *aux;
	memset(line,0,52);
    aux = line;
    *aux = fgetc(fr);
    while(*aux != '\n' && *aux != EOF){
        aux++;
        *aux = fgetc(fr);
    }
    if(*aux == EOF)
        eof = 1;
    *aux = '\0';
    return line;
}

void fileClose(){
	fclose(fr);
	fclose(fw);
}

int writeLine(char *line){
    while(*line != '\0'){
        fputc(*line,fw);
        line++;
    }
    fputc('\n',fw);
};

int fileCopy(char * path){
    fw = fopen(path, "w");
    fr = fopen(TEMP_ARQ, "r");
    if(fr == NULL ){
    	puts("Cannot open file!\n");
    	getc(stdin);
    	exit(-1);
  	}
	char *str;
	eof=0;
	str = readLine();
	while(!eof){
		writeLine(str);
		str = readLine();
	}
	fileClose();
  	return 1;
}

char *getOnlyName(char *linha)
{
	static char nome[22];
	int index;

puts("getOnlyData");
puts(linha);
	if (linha[0] < 'a'|| linha[0] > 'z' )
		return nome;

	memset(nome,0,22);

	for ( index = 0 ; linha[index] != ';' ; nome[index] = linha[index], index++);

	return nome;
}

char *getOnlyData(char *linha)
{
	static char data[10];
	int index;

	memset(data,0,10);

	for ( index = 0 ; linha[index] != ';' ; data[index] = linha[index], index++);

puts("DATA");
puts(data);
	return data;
}

int strcmpData(char * str1, char * str2)
{
	char data_aux1[10];
	char data_aux2[10];
	char string1[1024], string2[1024];
 
	memset(data_aux1,0,10);
	memset(data_aux2,0,10);
	memset(string1,0,1024);
	memset(string2,0,1024);

	strcpy(string1, str1);
	strcpy(string2, str2);

	strcpy(data_aux1, getOnlyData(str1));
	string1[0] = data_aux1[4];
	string1[1] = data_aux1[5];
	string1[2] = data_aux1[6];
	string1[3] = data_aux1[7];
	string1[4] = data_aux1[2];
	string1[5] = data_aux1[3];
	string1[6] = data_aux1[0];
	string1[7] = data_aux1[1];

	strcpy(data_aux2, getOnlyData(str2));
	string2[0] = data_aux2[4];
	string2[1] = data_aux2[5];
	string2[2] = data_aux2[6];
	string2[3] = data_aux2[7];
	string2[4] = data_aux2[2];
	string2[5] = data_aux2[3];
	string2[6] = data_aux2[0];
	string2[7] = data_aux2[1];

puts("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
puts(string1);
puts(string2);

	return strcmp(string1, string2);
}

char *getOnlyHoraInicial(char *linha)
{
	static char hora_inicial[6];
	char stop = 0, start = 1;
	char char_index = 0, index;
puts("getOnlyHoraInicial");
puts(linha);
	memset(hora_inicial,0,6);
	for ( index=0 ; stop < 2 ; index++ )
	{
		if ( linha[index] == ';' ){
				stop++;
				index++;
		}
		if ( stop == 1 ) {
			hora_inicial[char_index] = linha[index];
			char_index++;			
		}
	}
puts("HORA INICIAL");
puts(hora_inicial);
	return hora_inicial;
}

char *getOnlyHoraFinal(char *linha)
{
	static char hora_final[6];
	char stop = 0, start = 1;
	char char_index = 0, index;
	memset(hora_final,0,6);
puts("getOnlyHoraFinal");
puts(linha);
	for ( index=0 ; stop < 3 ; index++ )
	{
		if ( linha[index] == ';' ){
				stop++;
				index++;
		}
		if ( stop == 2 ) {
			hora_final[char_index] = linha[index];
			char_index++;			
		}
	}
puts("HORA FINAL");
puts(hora_final);
	return hora_final;
}

char *getOnlyEvent(char *linha)
{
	static char evento[256];
	static char mLinha[256];
	char stop = 0, start = 1;
	char char_index = 0, index;
	memset(evento,0,256);
	memset(mLinha,0,256);
	strcpy(mLinha, linha);
	strcat(mLinha, ";");
puts("getEvento");
puts(mLinha);
	for ( index=0 ; stop < 4 ; index++ )
	{
		if ( mLinha[index] == ';' ){
				stop++;
				index++;
		}
		if ( stop == 3 ) {
			evento[char_index] = mLinha[index];
			char_index++;			
		}
	}
puts("EVENTO");
puts(evento);
	return evento;
}

int doLogin(char *user, char *password)
{
	int result;
	char linha_montada[52], linha_lida[52];
	createFile(USERS_ARQ, _R, _G);
	strcpy(linha_montada, user);
	strcat(linha_montada, ";");
	strcat(linha_montada, password);
	strcpy(linha_lida, readLine());
	eof=0;
    while(!eof){ // enquanto nao for o fim do arquivo que estamos lendo
        result = strcmp(linha_montada, linha_lida); // em ordem alfabetica, antes ou depois?
        if(result == 0) // encontramos login valido
            return 1;
		strcpy(linha_lida, readLine());
	}
	return 0;
}

void addUser(char *nome, char *senha)
{
	char string[52];
    int result;
	char line[52];
	char linha_nome[52];
    createFile(USERS_ARQ, _R, _G);
    createFile(TEMP_ARQ, _W, _G);
if(fw==NULL)
puts("shittttttt");
	if(strlen(senha)>20){
		puts("Senha muito longa.. Escolha ate 20 digitos.");
		getc(stdin);
		exit(-1);
	}
	if(!matchUsername(nome)){
		puts("Nome digitado invalido!!");
		getc(stdin);
		exit(-1);
	}
	strcpy(line,nome);
	strcat(line,";");
	strcat(line,senha);;
	status = 0;
	eof=0;
	strcpy(string, readLine());
    while(!eof){ // enquanto nao for o fim do arquivo que estamos lendo
		strcpy(linha_nome, getOnlyName(string));		
		if(!status){ // se o nome ainda nao foi inserido);
        result = strcmp(nome,linha_nome); // em ordem alfabetica, antes ou depois?
		if(result < 0){ // se antes, entao iremos inserir o nome antes do lido
			writeLine(line);
            writeLine(string);
            status = 1;
        }
        else if(result > 0){ // se depois, apenas copiamos o que lemos
            writeLine(string);
        }
		else puts("Usuário já existe. Escolha outro nome...");
		}
		else { //continua copiando, pois já inseriu
		writeLine(string);
		}
		strcpy(string,  readLine());
    }
    if(!status){
        writeLine(line);
		fclose(fr);
	}
	char arquivo[50];
	strcpy(arquivo, "agendas/");
	strcat(arquivo, nome);
	strcat(arquivo, ".dat");
	createFile(arquivo, "--r", "--g");
    fileClose();
	fileCopy(USERS_ARQ);
    //printf("\n\n*** %d ***\n\n",strcmp("24/04/2008 14:00","24/04/2008 15:00"));
    //return 0;	
}

int addEvent(char *user, char*password, char* data, char *hora_inicial, char *hora_final, char *evento){
	char caminho[100];
	char linha[256];
	char string[256], string_anterior[256];
	int result;
	char hf_string_anterior[6], hi_linha[6], hf_linha[6], hi_string[6];
	char existe_ontem = 0;
	int cmp_anterior;
	int cmp_proximo;
	memset(string_anterior, 0, 256);
	memset(string, 0, 256);
	if(!doLogin(user, password))
		exit(-1);
	strcpy(caminho, "agendas/");
	strcat(caminho, user);
	strcat(caminho, ".dat");
puts("Caminho:");
puts(caminho);
	createFile(caminho, _R, _G);
	createFile(TEMP_ARQ, _W, _G);
puts("--------------------------------------------------");
if(fw == NULL)
puts("fodeu!!!!!!");
	strcpy(linha, data);
	strcat(linha, ";");
	strcat(linha, hora_inicial);
	strcat(linha, ";");
	strcat(linha, hora_final);
	strcat(linha, ";");
	strcat(linha, evento);
	status = 0;
	eof=0;
	strcpy(string, readLine());
puts("leu primeira linha");
	while(!eof){ // enquanto nao for o fim do arquivo que estamos lendo
		strcpy(hi_linha, getOnlyHoraInicial(linha));
		strcpy(hi_string, getOnlyHoraInicial(string));
		strcpy(hf_linha, getOnlyHoraFinal(linha));
puts("linha lida");
puts(string);				
		if(!status){ // se o nome ainda nao foi inserido
puts("06");
        result = strcmpData(linha,string); // em ordem alfabetica, antes ou depois?
puts("07");        
		if(result < 0){ // se antes, entao iremos inserir o nome antes do lido
puts("04");            
puts("escrevendo:");
puts(linha);
puts("***** TESTEEEEE...");
						//puts(getOnlyHoraFinal(string_anterior));
						//puts(getOnlyHoraInicial(linha));
						//puts(string_anterior);
						//puts(linha);
puts("aqui");
if(fw == NULL)
puts("fodeu aqui!!!!!!");
			if(existe_ontem){
puts("existe ontem");
				strcpy(hf_string_anterior, getOnlyHoraFinal(string_anterior));
				char data_str_anterior[12], data_str_atual[12];
				memset(data_str_anterior, 0, 12);
				memset(data_str_atual, 0, 12);
				strcpy(data_str_atual, getOnlyData(linha));
				strcpy(data_str_anterior, getOnlyData(string_anterior));
				if(strcmp(data_str_anterior, data_str_atual) == 0) { // se ontem e evento sao do mesmo dia
puts("ontem e o evento sao do mesmo dia!");
puts("888888888888888888888888888888888888888888");
puts(data_str_atual);
puts(getOnlyData(linha));
puts(data_str_anterior);
puts(getOnlyData(string_anterior));
printf("\n\n=>%s\n\n",string);
					cmp_anterior = strcmp(hf_string_anterior, hi_linha);					
					if(cmp_anterior >= 0){ // se horas conflitam com anterior
						printf("Atencao, ha um evento terminando antes deste1, as %s hs !!",hf_string_anterior);
						exit(-1);
					}
				}
			}
			char data_depois[12], data_agora[12];
			strcpy(data_depois, getOnlyData(string));
			strcpy(data_agora, getOnlyData(linha));
			if(strcmp(data_agora, data_depois) == 0){
				cmp_proximo = strcmp(hf_linha, hi_string);
				if(cmp_proximo >= 0){ // se horas conflitam com proximo
					printf("Atencao, ha um evento terminando depois deste, as %s hs !!",hi_string);
					exit(-1);
				}
			}
puts("passou, vai escrever");
			//if(strcmp(getOnlyData(linha), getOnlyData(string)) == 0) // se sao do mesmo dia
puts(linha);
puts(string);
if(fw == NULL)
puts("fodeu!!!!!!");
			writeLine(linha);
            writeLine(string);
            status = 1;
puts("05");
        }
        else if(result > 0){ // se depois, verificamos se nao ha conflitos...
puts("08");
puts("escrevendo:");
puts(linha);
            writeLine(string);
puts("09");
        }
		else { 
			puts("Este evento já foi cadastrado...");
			exit(-1);
		}
		}
		else { //continua copiando, pois já inseriu
		writeLine(string);
		}
		strcpy(string_anterior,  string);
		existe_ontem = 1;
		strcpy(string,  readLine());
    }
puts("fora do while");
    if(!status){
puts(linha);
		if(existe_ontem){
puts("existe ontem");
			strcpy(hf_string_anterior, getOnlyHoraFinal(string_anterior));
			char data_anterior[12], data_atual[12];
			strcpy(data_atual, getOnlyData(linha));
			strcpy(data_anterior, getOnlyData(string_anterior));
			if(strcmp(data_atual, data_anterior) == 0) { // se ontem e evento sao do mesmo dia
puts("ontem e o evento sao do mesmo dia!");
puts(string_anterior);
puts(linha);
puts(getOnlyData(string_anterior));
puts(getOnlyData(linha));
puts(string_anterior);
puts(linha);
				cmp_anterior = strcmp(hf_string_anterior, hi_linha);					
				if(cmp_anterior >= 0){ // se horas conflitam com anterior
					printf("Atencao, ha um evento terminando antes deste, as %s hs !!",hf_string_anterior);
					exit(-1);
				}
			}
		}
        writeLine(linha);
	}
    fileClose();
	fileCopy(caminho);
};

int updateEvent(char *user, char*password, char* data, char *hora_inicial, char *hora_final, char *evento){
	char caminho[100];
	char linha[256];
	char string[256];
	int result;
	char hi_string[6], hf_string[6];
	char data_string[12];
	char evento_string[256];
	char existe_ontem = 0;
	int cmp_anterior;
	int cmp_proximo;
	memset(string, 0, 256);
	if(!doLogin(user, password))
		exit(-1);
	strcpy(caminho, "agendas/");
	strcat(caminho, user);
	strcat(caminho, ".dat");
puts("Caminho:");
puts(caminho);
	createFile(caminho, _R, _G);
	createFile(TEMP_ARQ, _W, _G);
puts("--------------------------------------------------");
if(fw == NULL)
puts("fodeu!!!!!!");
	strcpy(linha, data);
	strcat(linha, ";");
	strcat(linha, hora_inicial);
	strcat(linha, ";");
	strcat(linha, hora_final);
	strcat(linha, ";");
	strcat(linha, evento);
	status = 0;
	eof=0;
	strcpy(string, readLine());
puts("MMMMMMMMMMMMMMMMMMMMMMMMMM");
puts(linha);
	while(!eof){ // enquanto nao for o fim do arquivo que estamos lendo
puts("Entro no while!!");
		strcpy(hi_string, getOnlyHoraInicial(string));
		strcpy(hf_string, getOnlyHoraFinal(string));
		strcpy(data_string, getOnlyData(string));
puts("linha lida");
puts(string);
printf("\n%d\n",result);
		if(status == 0){ // se o nome ainda nao foi substituido
        result = strcmpData(linha,string); // em ordem alfabetica, antes ou depois?
puts("OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO");
printf("\n%d\n",result);
printf("\n%d\n",result);
printf("\n%d\n",result);
		if(result != 0){ // se nao forem iguais
puts("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
printf("\n%d\n",result);
printf("\n%d\n",result);
printf("\n%d\n",result);

			strcpy(data_string, getOnlyData(string));
			if ( strcmp(data, data_string) == 0 && strcmp(hora_inicial, hi_string) == 0 ) { // linha eh valida para ser atualizada
			
				strcpy ( evento_string, getOnlyEvent(string) );
				if ( strcmp(evento_string, evento) == 0  || strcmp(hf_string, hora_final) == 0 ) { // um dos dois deve ser igual...
				
					writeLine(linha);
					status = 1;

				}
				else { 
					writeLine(string);
puts("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB");
				}
puts("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB");
			} else { 
					writeLine(string);
puts("DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD");
				}
			
        } else {
			puts("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); 
			puts("400;Nao ha o que alterar. Pois, hora de término e a Mensagem são iguais;");
			writeLine(string);
		}
		}
		else { //continua copiando, pois já inseriu
		writeLine(string);
		}
		strcpy(string,  readLine());
    }
puts("fora do while");
    if(!status){
		puts("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
		puts("404;Entrada não encontrada em sua Agenda;");
	}
    fileClose();
	fileCopy(caminho);
};

int removeAll(char *user, char*password, char* data)
{
	char caminho[100];
	char data_string[12];
	char linha[256];
	char string[256];
	int result;

	int removidas = 0;

	if(!doLogin(user, password))
		exit(-1);

	memset(string, 0, 256);

	strcpy(caminho, "agendas/");
	strcat(caminho, user);
	strcat(caminho, ".dat");

	createFile(caminho, _R, _G);
	createFile(TEMP_ARQ, _W, _G);

	status = 0;
	eof=0;
	strcpy(string, readLine());
puts("olha aki");
	while(!eof){ // enquanto nao for o fim do arquivo que estamos lendo
puts("Entro no while!!");
		strcpy(data_string, getOnlyData(string));
puts("linha lida");
		if ( strcmp(data, data_string) != 0) // se nao eh a data que se deseja excluir...
			writeLine(string);
		else removidas++;
		strcpy(string, readLine());
	}
	if(removidas!=0){
		printf("200;Removido %d entradas com Sucesso;",removidas);
	} else {
		printf("404;Nenhuma Entrada Encontrada para a data %s",data);
	}
	fileClose();
	fileCopy(caminho);
}

int removeOnlyOne(char *user, char*password, char* data, char* hora_inicial)
{
	char caminho[100];
	char data_string[12];
	char hora_inicial_string[12];
	char linha[256];
	char string[256];
	int result;

	int removidas = 0;

	if(!doLogin(user, password))
		exit(-1);

	memset(string, 0, 256);

	strcpy(caminho, "agendas/");
	strcat(caminho, user);
	strcat(caminho, ".dat");

	createFile(caminho, _R, _G);
	createFile(TEMP_ARQ, _W, _G);

	status = 0;
	eof=0;
	strcpy(string, readLine());
puts("olha aki");
	while(!eof){ // enquanto nao for o fim do arquivo que estamos lendo
puts("Entro no while!!");
		strcpy(data_string, getOnlyData(string));
		strcpy(hora_inicial_string, getOnlyHoraInicial(string));
puts("linha lida");
		if ( strcmp(data, data_string) != 0 || strcmp(hora_inicial, hora_inicial_string) != 0) // se nao eh a data que se deseja excluir...
			writeLine(string);
		else {
			removidas++;
		}
		strcpy(string, readLine());
	}
	if(removidas!=0){
		printf("200;Entrada Removida com Sucesso;");
	} else {
		printf("400;Data ou hora especificadas nao foram encontradas na agenda;");
	}
	fileClose();
	fileCopy(caminho);
}

int getOnlyOne(char *user, char*password, char* data, char* hora_inicial)
{
	char caminho[100];
	char data_string[12];
	char hora_inicial_string[12];
	char linha[256];
	char string[256];
	int result;

	int encontrada = 0;

	if(!doLogin(user, password))
		exit(-1);

	memset(string, 0, 256);

	strcpy(caminho, "agendas/");
	strcat(caminho, user);
	strcat(caminho, ".dat");

	createFile(caminho, _R, _G);
	createFile(TEMP_ARQ, _W, _G);

	status = 0;
	eof=0;
	strcpy(string, readLine());
puts("olha ala");
	while(!eof && !encontrada){ // enquanto nao for o fim do arquivo que estamos lendo
puts("Entro no while!!");
		strcpy(data_string, getOnlyData(string));
		strcpy(hora_inicial_string, getOnlyHoraInicial(string));
puts("linha lida");
		if ( strcmp(data, data_string) == 0 && strcmp(hora_inicial, hora_inicial_string) == 0){ // se nao eh a data que se deseja excluir...
			printf("200;%s;",string);
			encontrada = 1;
		}
		strcpy(string, readLine());
	}
	if(!encontrada)
		printf("404;Não há eventos para data e horário especificados;");
	fileClose();
}

int getAll(char *user, char*password, char* data)
{
	char caminho[100];
	char data_string[12];
	char hora_inicial_string[12];
	char hora_final_string[12];
	char evento_string[256];
	char string[256];

	char output[1024];
	char output_aux[1024];

	int encontradas = 0;
	int encontrada = 0;

	if(!doLogin(user, password))
		exit(-1);

	memset(string, 0, 256);
	memset(output, 0, 1024);
	memset(output_aux, 0, 1024);

	strcpy(caminho, "agendas/");
	strcat(caminho, user);
	strcat(caminho, ".dat");

	createFile(caminho, _R, _G);
	createFile(TEMP_ARQ, _W, _G);

	status = 0;
	eof=0;
	strcpy(string, readLine());
puts("olha ala");
	while(!eof){ // enquanto nao for o fim do arquivo que estamos lendo
puts("Entro no while!!");
		strcpy(data_string, getOnlyData(string));
puts("linha lida");
		if ( strcmp(data, data_string) == 0 ){ // se nao eh a data que se deseja capturar...
			if(encontradas == 4){
				strcpy(output, "200;4;");
				strcat(output, output_aux);
				printf("%s",output);
				memset(output, 0, 1024);
				memset(output_aux, 0, 1024);
				encontradas = 0;
			}
puts("juka");
			if(!encontradas){
puts("juka2");
puts(string);
printf("%d\n\n",encontradas);	
				strcpy(output_aux, string);
				strcat(output_aux, ";");
puts("juka2b");			
			}
			else {
puts("juka3");
				strcpy(hora_inicial_string, getOnlyHoraInicial(string));
				strcpy(hora_final_string, getOnlyHoraFinal(string));
				strcpy(evento_string, getOnlyEvent(string));
				strcat(output_aux, hora_inicial_string);
				strcat(output_aux, ";");
				strcat(output_aux, hora_final_string);
				strcat(output_aux, ";");
				strcat(output_aux, evento_string);
				strcat(output_aux, ";");
puts("juka3b");
			}
puts("juka4");
			encontradas++;
			encontrada = 1;
puts("juka4b");
		}
		strcpy(string, readLine());
puts("juka5");
	}
puts("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
printf("%d\n",encontradas);
	if(encontradas){
puts("kakakakakakak");
		sprintf(output, "200;%c", encontradas+48);
		strcat(output, ";");
		strcat(output, output_aux);
		printf("%s",output);
		memset(output, 0, 1024);
		memset(output_aux, 0, 1024);
		encontradas = 0;
	}
	if(!encontrada)
		printf("404;Não há eventos para data e horário especificados;");
	fileClose();
}

int main(int argc, char *argv[])
{
    if(argc != 3){
        puts("Usage: ./newUser \"<USER_NAME>\" <USER_PSWD>\n");
        puts("For example: ./newUser \"john.bob\" 12345\n");
        puts("* Remember to use only alphanumerics in password field.\n");
        getc(stdin);
        exit(-1);
    }
    char *a = argv[2];
    while(*a != '\0'){
        if(*a < 48 || *a > 57){
            puts("Please, just use alphanumerics in the password.\n\nTry again!\n");			getc(stdin);
            exit(-1);
        }
        a++;
    }

/*
	addEvent(argv[1], argv[2], "24032010", "0001", "0030", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0501", "0530", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "2131", "2100", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "2201", "2230", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1031", "1100", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0701", "0730", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0101", "0130", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0131", "0200", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0201", "0230", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1501", "1530", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1131", "1200", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1201", "1230", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0031", "0100", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0631", "0700", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1101", "1130", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "2301", "2330", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1301", "1330", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1331", "1400", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1401", "1430", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1431", "1500", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1731", "1700", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1801", "1830", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1831", "1800", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0231", "0300", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0301", "0330", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0331", "0400", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0531", "0600", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0601", "0630", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0731", "0800", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0801", "0830", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0831", "0900", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0901", "0930", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0931", "1000", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1001", "1030", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "2031", "2000", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "2101", "2130", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0401", "0430", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0431", "0500", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1231", "1300", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1531", "1600", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1601", "1630", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1701", "1730", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1901", "1930", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1931", "1900", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "2001", "2030", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "2231", "2200", "ir ao gil");
*/
/*
	addEvent(argv[1], argv[2], "24032010", "0001", "0030", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0031", "0100", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0101", "0130", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0131", "0200", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0201", "0230", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0231", "0300", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0301", "0330", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0331", "0400", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0401", "0430", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0431", "0500", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0501", "0530", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0531", "0600", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0601", "0630", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0631", "0700", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0701", "0730", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0731", "0800", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0801", "0830", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0831", "0900", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0901", "0930", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "0931", "1000", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1001", "1030", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1031", "1100", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1101", "1130", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1131", "1200", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1201", "1230", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1231", "1300", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1301", "1330", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1331", "1400", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1401", "1430", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1431", "1500", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1501", "1530", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1531", "1600", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1601", "1630", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1701", "1730", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1731", "1700", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1801", "1830", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1831", "1800", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1901", "1930", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "1931", "1900", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "2001", "2030", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "2031", "2000", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "2101", "2130", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "2131", "2100", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "2201", "2230", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "2231", "2200", "ir ao gil");
	addEvent(argv[1], argv[2], "24032010", "2301", "2330", "ir ao gil");
*/
	char aux;

aux=getchar();

	updateEvent(argv[1], argv[2], "24032010", "1101", "1130", "comer abobrinha");

aux=getchar();

	//removeAll(argv[1], argv[2], "24032010");

	removeOnlyOne(argv[1], argv[2], "24032010", "1201");

aux=getchar();

	getOnlyOne(argv[1], argv[2], "24032010", "1300");

aux=getchar();

	getAll(argv[1], argv[2], "24032010");

aux=getchar();


	//puts("Testando...");
	//strcmp()	
	
	//addUser(argv[1], argv[2]);

	/*int r = doLogin(argv[1], argv[2]);
	if(r==1)
		puts("Encontrou!");
	else puts("Nao encontrou!");*/
	//createFile(TEMP_ARQ, _R, _G);
	//writeLine("testando o write line");
	//writeLine("sera que vai dar");
	//writeLine("vamos ver");
	//puts("testando o readline...");
	//puts(readLine());
	//puts(readLine());
	//puts(readLine());
	//puts(readLine());

}
